﻿using BCCommon.Enums;
using BCCommon.TMS.Driver;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace BCDto.TMS.VehicleType
{
    /// <summary>
    /// 车辆类型请求模型
    /// </summary>
    public class VehicleTypeRequestDto
    {
        /// <summary>
        /// 车型名称
        /// </summary>
        [Display(Name = "车型名称")]
        public string VehicleTypeName { get; set; }

        /// <summary>
        /// 车辆所属类型（对应字典引用检索键）
        /// </summary>
        [Display(Name = "车辆所属类型")]
        [Required(ErrorMessage = "车辆所属类型为必填项")]
        [StringLength(150, ErrorMessage = "请勿输入超过 150 个字符")]
        public string VehicleTypeEnum { get; set; }

        /// <summary>
        /// 车辆所属分类
        /// </summary>
        [Display(Name = "车辆所属分类")]
        [Required(ErrorMessage = "车辆所属分类为必填项")]
        public List<string> VehicleCategory { get; set; }

        /// <summary>
        /// 最大载重
        /// </summary>
        [Display(Name = "最大载重")]
        [Required(ErrorMessage = "最大载重为必填项")]
        public int MaxWeight { get; set; }

        /// <summary>
        /// 车辆长度
        /// </summary>
        [Display(Name = "车辆长度")]
        [Required(ErrorMessage = "车辆长度为必填项")]
        public decimal VehicleLength { get; set; }

        /// <summary>
        /// 车辆宽度
        /// </summary>
        [Display(Name = "车辆宽度")]
        [Required(ErrorMessage = "车辆宽度为必填项")]
        public decimal VehicleWidth { get; set; }

        /// <summary>
        /// 车辆高度
        /// </summary>
        [Display(Name = "车辆高度")]
        [Required(ErrorMessage = "车辆高度为必填项")]
        public decimal VehicleHeight { get; set; }

        /// <summary>
        /// 最大载货立方
        /// </summary>
        [Display(Name = "最大载货立方")]
        [Required(ErrorMessage = "最大载货立方为必填项")]
        public decimal MaxStere { get; set; }

        /// <summary>
        /// 车辆轴距
        /// </summary>
        [Display(Name = "车辆轴距")]
        [Required(ErrorMessage = "车辆轴距为必填项")]
        public decimal? VehicleWheelbase { get; set; }
        /// <summary>
        /// 油耗/100km
        /// </summary>
        [Display(Name = "油耗/100km")]
        public decimal? OilConsumption { get; set; }
        /// <summary>
        /// 油耗价格/L
        /// </summary>
        [Display(Name = "油耗价格/L")]
        public decimal? OilConsumptionPrice { get; set; }
        /// <summary>
        /// 编辑人
        /// </summary>
        [Display(Name = "编辑人")]
        public string Editer { get; set; }
        /// <summary>
        /// 每日利润
        /// </summary>
        [Display(Name = "每日利润")]
        public decimal? EverdayProfit { get; set; }
        /// <summary>
        /// 适用业务类型
        /// </summary>
        [Display(Name = "适用业务类型")]
        [Required(ErrorMessage = "适用业务类型 为必填项")]
        public DriverRoleType AppliedTo { get; set; } 

        /// <summary>
        /// 车辆长度系数
        /// </summary>
        [Display(Name = "车辆长度系数")]
        public decimal? VehicleLengthRatio { get; set; }

        /// <summary>
        /// 车辆宽度系数
        /// </summary>
        [Display(Name = "车辆宽度系数")]
        public decimal? VehicleWidthRatio { get; set; }

        /// <summary>
        /// 车辆高度系数
        /// </summary>
        [Display(Name = "车辆高度系数")]
        public decimal? VehicleHeightRatio { get; set; }

        /// <summary>
        /// 车型图片路径
        /// </summary>
        [Display(Name = "车型图片路径")]
        public string VehiclePicPath { get; set; }
    }
}